<?php 
namespace App\Controllers; 
 
class Travel extends BaseController 
{ 
  
    public function index() 
    { 
             // connect to the model 
             $places = new \App\Models\Places(); 
             // retrieve all the records 
             $records = $places->findAll(); 
              // get a template parser 
             $parser = \Config\Services::parser(); 
        // tell it about the substitions 
        return $parser->setData(['records' => $records]) 
            // and have it render the template with those 
            ->render('placeslist'); 
    } 
    public function handle() { 
        $places = new \App\Models\Places();
         helper(['form', 'url']);
         $record = $places->find($this->request->getPost('id'));
         if ($this->validate($places->validationRules)) {
                 $places->save([
                 'id' => $this->request->getPost('id'),
                 'name' => $this->request->getPost('name'),
                 'description' => $this->request->getPost('description'),
                 'link' => $this->request->getPost('link'),
                 'image' => $this->request->getPost('image'),
                 ]);
                 }
                 $fields = [
                         'title' => 'Edit a Destination',
                        'heading' => 'Edit a Destination',
                        'footer' => 'Copyright xieyuhang'
                         ];
                 $parser = \Config\Services::parser();
                  //Top of page
                 $returnView = $parser->setData($fields)->render('templates\top');
//Body of page
                if (!$this->validate($places->validationRules)) {
                    $returnView .= $parser->renderString($this->validator->listErrors());
                    $returnView .= $parser->setData($this->request->getPost())
                    ->render('editplace');
              } else {
                    $returnView .= $parser->renderString("<p>Success!</p>");
                    $returnView .= $parser->setData($this->request->getPost())->render('editplace');
 }

//Bottom of page
              $returnView .= $parser->setData($fields)->render('templates\bottom');

                  return $returnView;
    }
    public function showme($id)  
    {  
        // 连接到模型  
        $places = new \App\Models\Places();  
        
        // 根据 ID 获取记录  
        $record = $places->find($id);  
    
        // 检查是否找到记录  
        if (!$record) {  
            throw new \CodeIgniter\Exceptions\PageNotFoundException("Place with ID $id not found.");  
        }  
    
        // 创建一个新的表实例  
        $table = new \CodeIgniter\View\Table();  
        // 设置详细信息表的标题  
        $table->addRow(anchor(uri: "travel/edit/$id", title: "Edit"));
        
        // 添加记录的详细信息到表格  
        $table->addRow('ID', $record['id']);  
        $table->addRow('Name', $record['name']);  
        $table->addRow('Description', $record['description']);  
        $table->addRow('Tourism Site', '<a href="' . $record['link'] . '" target="_blank">' . $record['link'] . '</a>'); // 添加 link  
        $table->addRow('Image', '<img src="/image/' . $record['image'] . '" alt="' . $record['name'] . ' image" style="max: width 400px;px;"/>'); // 添加 image  
    
        // 设置表的模板  
        $template = [  
            'table_open' => '<table cellpadding="5px">',  
            'cell_start' => '<td style="border: 1px solid #dddddd;">',  
            'row_alt_start' => '<tr style="background-color:#dddddd">',  
        ];  
        $table->setTemplate($template);  
    
        // 准备顶部和底部模板的数据  
        $fields = [  
            'title' => 'Travel Destination Details',  
            'heading' => '' . $record['name'],  
            'footer' => 'Copyright xieyuhang'  
        ];  
    
        // 获取模板解析器  
        $parser = \Config\Services::parser();  
    
        // 渲染顶部模板、表格和底部模板  
        return $parser->setData($fields)  
            ->render('templates/top') .  
            $table->generate() .  
            $parser->setData($fields)  
            ->render('templates/bottom');  
    }
    public function edit($id = NULL) { 
        $places = new \App\Models\Places();
         $record = $places->find($id);
         $fields = [
                 'title' => 'Edit a Destination',
                 'heading' => 'Edit a Destination',
                 'footer' => 'Copyright xieyuhang'
         ];
         $parser = \Config\Services::parser();
       return $parser->setData($fields)
        ->render('templates\top') .
        $parser->setData($record)
        ->render('editplace') .
        $parser->setData($fields)
        ->render('templates\bottom');
    }
}